<?php

/**
 * This is the model class for table "instalacao".
 *
 * The followings are the available columns in table 'instalacao':
 * @property integer $id_instalacao
 * @property string $acronimo
 * @property string $nome
 * @property string $endereco
 * @property string $outras_informacoes
 *
 * The followings are the available model relations:
 * @property Atividade[] $atividades
 */
class Instalacao extends CActiveRecord {
	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return Instalacao the static model class
	 */
	public static function model($className = __CLASS__) {
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName() {
		return 'instalacao';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules() {
		return array(
            array('acronimo', 'unique', 'message' => 'Acrônimo já cadastrado'),
            array('acronimo', 'required', 'message' => 'Digite um acrônimo válido'),

            array('nome', 'required', 'message' => 'Digite um nome válido'),
			array('endereco', 'required', 'message' => 'Digite um endereço válido'),
                    
			array('acronimo', 'length', 'max' => 16, 'message' => 'Digite um acrônimo com no máximo 16 caracteres'),
			array('nome', 'length', 'max' => 64, 'message' => 'Digite um nome com no máximo 64 caracteres'),
			array('endereco, outras_informacoes', 'length', 'max' => 128, 'message' => 'Digite uma informação com no máximo 128 caracteres'),

            array('id_instalacao, acronimo, nome, endereco, outras_informacoes', 'safe', 'on' => 'index'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations() {
		return array(
			'atividades' => array(self::HAS_MANY, 'Atividade', 'id_instalacao'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels() {
		return array(
			'id_instalacao' => 'Identificador de instalação',
			'acronimo' => 'Acrônimo',
			'nome' => 'Nome',
			'endereco' => 'Endereço',
			'outras_informacoes' => 'Outras informações',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function getFilterDataProvider() {
		$criteria = new CDbCriteria;
		$criteria->compare('acronimo', $this->acronimo, true);
		$criteria->compare('nome', $this->nome, true);
		$criteria->compare('endereco', $this->endereco, true);

		return new CActiveDataProvider($this, array('criteria' => $criteria));
	}
}